mssql

推荐列表 站点导航

当前位置:首页 > 数据库 > mssql >

深入SQL Cursor基本用法的详细介绍

来源:网络整理  作者:网络  发布时间:2020-12-09 17:34
本篇文章是对SQL Cursor的基本用法进行了详细的分析介绍,需要的朋友参考下...
1 ab
select 1,101,'b' union all
update #Temp2 set username=username +@username where deptid=@deptid
--定义游标
备注:无

DEALLOCATE 游标名称 (删除游标)
declare @id int
id int
select 1,131,'d' union all
@@FETCH_STATUS =0 FETCH 语句成功
select deptid,username from #Temp1
begin
name varchar(50)
fetch next from cursor1 into @id,@name --将游标向下移1行
end
deptid username
declare cursor1 cursor for --定义游标cursor1
由于这个游标 执行一下就相当于SELECT一下 其效率不敢恭维也没做深入研究。
时间: 2006-05

create table #Temp2(deptid int,username varchar(20)) --结果表
while @@fetch_status=0 --判断是否成功获取数据


update table1 set name=name+'1'
insert into #Temp1
--当表#Temp2列deptid存在相同的数据时,就直接在列username上追加@username值


select * from table1 --使用游标的对象(跟据需要填入select文)
fetch next from Select_cursor into @deptid,@username
where id=@id --进行相应处理(跟据需要填入SQL文)
select 2,302,'c' union all

close Select_cursor
例子:

select 2,221,'e' union all
BEGIN
--
*/
游标一般格式:
declare Select_cursor cursor for
2 c
--先把一些待测试的数据插入到待测试表#Temp1中
begin
@@FETCH_STATUS =-1 FETCH 语句失败或此行不在结果集中
while @@fetch_status=0 --返回被 FETCH 语句执行的最后游标的状态
1 100 a
END
select 2,202,'a' union all
select * from #Temp2 --测试结果
CLOSE 游标名称
要求用一个sql语句输出下面结果
功能:数据库表格tbl_users数据
create table #Temp1(deptid int,userid int,username varchar(20)) --待测试的数据表
fetch next from cursor1 into @id,@name --将游标向下移1行,获取的数据放入之前定义的变量@id,@name中
FETCH NEXT FROM 游标名称 INTO 变量名1,变量名2,变量名3,...
deptid userid username
[要求用游标实现设计: OK_008
WHILE @@FETCH_STATUS=0

复制代码 代码如下:

/*
/*
select 3,102,'y' union all
if(exists(select * from #Temp2 where deptid=@deptid ))
deallocate Select_cursor

table1结构如下

declare @name varchar(50)
1 101 b
declare @deptid int,@username varchar(20)
select 1,201,'f' union all
OPEN 游标名称
open Select_cursor
--插入新数据
FETCH NEXT FROM 游标名称 INTO 变量名1,变量名2,变量名3,...

select 3,302,'e' union all

复制代码 代码如下:

2 102 c
deallocate cursor1
select 1,100,'a' union all
*/
else
end
SQL语句执行过程... ...
insert into #Temp2 select @deptid,@username
open cursor1 --打开游标
Drop table #Temp1,#Temp2
@@FETCH_STATUS =-2 被提取的行不存在
close cursor1 --关闭游标
select 3,121,'t'
DECLARE 游标名称 CURSOR FOR SELECT 字段1,字段2,字段3,... FROM 表名 WHERE ...

fetch next from Select_cursor into @deptid,@username --提取操作的列数据放到局部变量中

相关热词:

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://v30.fanwenzhu.com/sql/mssql/1877.shtml

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

深入SQL Cursor基本用法的详细介绍

2020-12-09 编辑:网络

1 ab
select 1,101,'b' union all
update #Temp2 set username=username +@username where deptid=@deptid
--定义游标
备注:无

DEALLOCATE 游标名称 (删除游标)
declare @id int
id int
select 1,131,'d' union all
@@FETCH_STATUS =0 FETCH 语句成功
select deptid,username from #Temp1
begin
name varchar(50)
fetch next from cursor1 into @id,@name --将游标向下移1行
end
deptid username
declare cursor1 cursor for --定义游标cursor1
由于这个游标 执行一下就相当于SELECT一下 其效率不敢恭维也没做深入研究。
时间: 2006-05

create table #Temp2(deptid int,username varchar(20)) --结果表
while @@fetch_status=0 --判断是否成功获取数据


update table1 set name=name+'1'
insert into #Temp1
--当表#Temp2列deptid存在相同的数据时,就直接在列username上追加@username值


select * from table1 --使用游标的对象(跟据需要填入select文)
fetch next from Select_cursor into @deptid,@username
where id=@id --进行相应处理(跟据需要填入SQL文)
select 2,302,'c' union all

close Select_cursor
例子:

select 2,221,'e' union all
BEGIN
--
*/
游标一般格式:
declare Select_cursor cursor for
2 c
--先把一些待测试的数据插入到待测试表#Temp1中
begin
@@FETCH_STATUS =-1 FETCH 语句失败或此行不在结果集中
while @@fetch_status=0 --返回被 FETCH 语句执行的最后游标的状态
1 100 a
END
select 2,202,'a' union all
select * from #Temp2 --测试结果
CLOSE 游标名称
要求用一个sql语句输出下面结果
功能:数据库表格tbl_users数据
create table #Temp1(deptid int,userid int,username varchar(20)) --待测试的数据表
fetch next from cursor1 into @id,@name --将游标向下移1行,获取的数据放入之前定义的变量@id,@name中
FETCH NEXT FROM 游标名称 INTO 变量名1,变量名2,变量名3,...
deptid userid username
[要求用游标实现设计: OK_008
WHILE @@FETCH_STATUS=0

复制代码 代码如下:

/*
/*
select 3,102,'y' union all
if(exists(select * from #Temp2 where deptid=@deptid ))
deallocate Select_cursor

table1结构如下

declare @name varchar(50)
1 101 b
declare @deptid int,@username varchar(20)
select 1,201,'f' union all
OPEN 游标名称
open Select_cursor
--插入新数据
FETCH NEXT FROM 游标名称 INTO 变量名1,变量名2,变量名3,...

select 3,302,'e' union all

复制代码 代码如下:

2 102 c
deallocate cursor1
select 1,100,'a' union all
*/
else
end
SQL语句执行过程... ...
insert into #Temp2 select @deptid,@username
open cursor1 --打开游标
Drop table #Temp1,#Temp2
@@FETCH_STATUS =-2 被提取的行不存在
close cursor1 --关闭游标
select 3,121,'t'
DECLARE 游标名称 CURSOR FOR SELECT 字段1,字段2,字段3,... FROM 表名 WHERE ...

fetch next from Select_cursor into @deptid,@username --提取操作的列数据放到局部变量中

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://v30.fanwenzhu.com/sql/mssql/1877.shtml

相关文章

风云图片

推荐阅读

返回mssql频道首页